home *** CD-ROM | disk | FTP | other *** search
Wrap
CLS SOUND 0 ' ' vokus v1.1 ' written by Thorsten Liese ' a$="symbols.pic" @degload(a$,*pic$,*pal$,*res%) IF res%<>XBIOS(4) ALERT 3,"Bild hat falsche Auflösung !",1,"OKAY",back% EDIT ELSE VOID XBIOS(6,L:VARPTR(pal$)) SPUT pic$ GET 1,1,80,80,sym1$ GET 81,1,160,80,sym2$ GET 161,1,240,80,sym3$ GET 1,100,299,145,vokus$ GET 0,179,324,366,info$ CLS ENDIF ' ' ** DIMENSIONIERUNGEN ** ' DIM menu$(61) DIM lin1$(1000,3) DIM lin2$(1000,3) DIM anm1$(1000) DIM anm2$(1000) DIM status#(1000) DIM us#(1000) DIM drin#(1000) DIM unregel$(160,3) ' allerichtig%=1 spei#=1 grber%=1 KEYPAD &X11100 FOR i#=1 TO 1000 us#(i#)=1 NEXT i# ' ' ** BILDSCHIRMAUFBAU ** ' DEFFILL ,2,4 PBOX 0,0,640,400 GRAPHMODE 1 PUT 200,54,vokus$ DEFFILL ,0,0 PBOX 30,40,180,70 LINE 32,71,181,71 LINE 181,42,181,71 PRINT AT(6,4);"Nummer:" PBOX 30,88,180,118 PBOX 30,118,610,195 LINE 181,90,181,118 LINE 32,196,611,196 LINE 611,196,611,120 PRINT AT(6,7);"Deutsch:" PRINT AT(6,9);"-" PRINT AT(6,10);"-" PRINT AT(6,11);"-" PRINT AT(68,12);"]";AT(6,12);"[" PBOX 30,200,180,230 PBOX 30,230,610,308 LINE 181,202,181,230 LINE 611,232,611,309 LINE 32,309,611,309 PRINT AT(6,14);"Fremdsprache:" PRINT AT(6,16);"-" PRINT AT(6,17);"-" PRINT AT(6,18);"-" PRINT AT(68,19);"]";AT(6,19);"[" PBOX 519,29,601,111 LINE 521,112,602,112 LINE 602,31,602,112 PBOX 30,313,250,343 LINE 32,344,251,344 LINE 251,344,251,315 PRINT AT(6,21);"Fehler,gesamt:" PBOX 390,313,610,343 LINE 392,344,611,344 LINE 611,344,611,315 PRINT AT(51,21);"Fehler,Vokabel:" PBOX 30,360,610,390 LINE 32,391,611,391 LINE 611,391,611,362 ' ' ** LADE MUSIK ** ' PRINT AT(6,24);" ***** L A D E M U S I K *****" musik$=SPACE$(5120) musikadresse%=VARPTR(musik$) BLOAD "TITEL.MUS",musikadresse% PRINT AT(6,24);SPC(70) ' ' ** LADE UNREGELM. VERBEN ** ' PRINT AT(6,24);" ***** LADE UNREGELMÄSSIGE VERBEN *****" OPEN "U",#1,"VERBEN.DAT" FOR i#=1 TO 160 INPUT #1,unregel$(i#,1) INPUT #1,unregel$(i#,2) INPUT #1,unregel$(i#,3) NEXT i# CLOSE PRINT AT(6,24);SPC(70) ' ' SUCHE F-TASTENTEXTE ' PRINT AT(6,24);" ***** SUCHE F-TASTENTEXTE...BITTE WARTEN *****" a$="VOKUS " b$="VERSION 2_0" KEYDEF 1,a$+b$ GOSUB find(1,a$,b$,BASEPAGE,999998,*back$) ftastenspeicher%=CVL(back$)-BASEPAGE PRINT AT(6,24);SPC(70) ' ' LADE SETUP.FTA ' PRINT AT(6,24);" ***** LADE SETUP.FTA *****" OPEN "U",#1,"SETUP.FTA" FOR i#=1 TO 20 INPUT #1,a$ KEYDEF i#,a$ NEXT i# CLOSE PRINT AT(6,24);SPC(70) ' ' ** MENU LESEN UND ZEICHNEN ** ' x#=-1 REPEAT x#=x#+1 READ menu$(x#) UNTIL menu$(x#)="ENDE" menu$(x#)="" MENU menu$() MENU 12,2 MENU 13,2 MENU 14,2 MENU 23,2 MENU 24,2 MENU 29,2 MENU 30,2 MENU 34,2 MENU 35,2 MENU 36,2 MENU 37,2 MENU 38,2 MENU 39,2 MENU 43,2 MENU 44,2 MENU 45,1 MENU 26,2 MENU 27,2 MENU 56,1 ' SGET hi$ ~GRAF_GROWBOX(320,200,0,0,158,106,324,187) PUT 158,106,info$ REPEAT UNTIL MOUSEX>423 AND MOUSEX<459 AND MOUSEY>227 AND MOUSEY<267 AND MOUSEK=1 GRAPHMODE 3 DEFFILL 1,1,1 PBOX 423,226,460,267 PAUSE 10 GRAPHMODE 1 ~GRAF_SHRINKBOX(320,200,0,0,158,106,324,187) SPUT hi$ ' lanaus%=1 ' ' ** MENU DATAS ** ' DATA Desk, Info ,---------------------,- ,- ,- ,- ,- ,- ,"" DATA Datei, Laden , Speichern , Speichern als , Löschen ,----------------, Quit ,"" DATA Eingabe, -Vokabeln- ,"" DATA Lernen,--------Vokabeln-------, Vokabeln wählen , ...listen ,---------Lernen---------, Deutsch-Fremdsprache , Fremdsprache-Deutsch ,--------Abfrage---------, Deutsch-Fremdsprache , Fremdsprache-Deutsch ,- Hilfestellung ,"" DATA Vokabel, Goto Vokabel , löschen , ersetzen , editieren , alle listen , alle drucken , Übersetzung suchen ,"" DATA Funktionen, Auswertung, Vokabelstatus, Großschreibung, Fremdsprache?, Lektionsname?, Funktionstastenbelegung , Tastenbelegung laden, Tastenbelegung speichern , Einstellungen ,"" DATA Extras, Musik starten , Unregelmäßige Verben , Laufschrift , Sortieren ,"" DATA "","ENDE" ' ' ** MENU ÜBERWACHEN + LAUFSCHRIFT ** ' laufschrift$=SPACE$(72)+"*** VOKUS * Ein Vokabel-Lernprogramm von Thorsten Liese * Geschrieben in GfA-BASIC V3.00 D *" laufschrift$=laufschrift$+" 1990/91 V1.1 * Dieses Programm ist >>PUBLIC DOMAIN<< ! Es darf also beliebig kopiert und weitergegeben werden. * Für nur 10.- DM gibt's die neueste Version von VOKUS ! *** " DO IF lanaus%=1 laufschrift#=laufschrift#+1 IF laufschrift#>LEN(laufschrift$) laufschrift#=1 ENDIF PRINT AT(6,24);MID$(laufschrift$,laufschrift#,70) PAUSE 5 ENDIF a$=INKEY$ REPEAT UNTIL INKEY$="" IF UPPER$(a$)="G" AND lins#>0 diain("Goto Vokabel Nr.:",4,back$) IF VAL(back$)>0 AND VAL(back$)<lins#+1 akt#=VAL(back$) clervok showvok(3) ENDIF ENDIF IF a$=CHR$(27) SOUND 0 SPOKE &H484,PEEK(&H484) OR 1 musik#=0 ENDIF IF PEEK(XBIOS(32,L:-1))=96 AND musik#=1 ~XBIOS(32,L:musikadresse%) ENDIF IF LEN(a$)=2 AND lins#>0 IF ASC(RIGHT$(a$))=77 akt#=akt#+1 IF akt#>lins# akt#=lins# ENDIF clervok showvok(3) ENDIF IF ASC(RIGHT$(a$))=75 akt#=akt#-1 IF akt#=0 akt#=1 ENDIF clervok showvok(3) ENDIF IF ASC(RIGHT$(a$))=72 akt#=lins# clervok showvok(3) ENDIF IF ASC(RIGHT$(a$))=80 akt#=1 clervok showvok(3) ENDIF ENDIF ON MENU ON MENU GOSUB akk LOOP ' PROCEDURE akk IF MENU(5)=23 SGET hi$ ~GRAF_GROWBOX(320,200,0,0,158,106,324,187) PUT 158,106,info$ REPEAT UNTIL MOUSEX>423 AND MOUSEX<459 AND MOUSEY>227 AND MOUSEY<267 AND MOUSEK=1 GRAPHMODE 3 DEFFILL 1,1,1 PBOX 423,226,460,267 PAUSE 10 GRAPHMODE 1 ~GRAF_SHRINKBOX(320,200,0,0,158,106,324,187) SPUT hi$ ENDIF IF MENU(5)=32 IF lins#>0 ALERT 2,"Vokabeln im Speicher vorher|löschen ?",0,"Ja| Nein ",a% IF a%=1 AND spei#=0 ALERT 1,"Achtung! Sie haben die|Vokabeln im Speicher|nicht gesichert!",1,"Egal|Abbruch",b% IF b%=2 GOTO weg ENDIF ENDIF IF a%=2 IF lins#=1000 ALERT 3,"Es können keine Vokabeln|mehr dazugeladen werden!",1,"Abbruch",dummy% GOTO weg ENDIF ENDIF ELSE a%=1 ENDIF FILESELECT "\*.VOK","",lad$ IF lad$<>"\" AND lad$<>"" IF EXIST(lad$)=0 ALERT 1,"Datei existiert nicht!",1,"Abbruch",dummy% GOTO weg ENDIF nachlad: DEFMOUSE 2 GET 215,170,425,230,hi$ DEFFILL ,0,0 PBOX 215,170,425,230 BOX 223,200,417,220 PRINT AT(30,12);"VOKABELN LADEN:" ON ERROR GOSUB fehl OPEN "R",#1,lad$,480 FIELD #1,60 AS d1$,60 AS d2$,60 AS d3$,60 AS a1$,60 AS e1$,60 AS e2$,60 AS e3$,60 AS a2$ ausw#=194/((LOF(#1)/480)-1) w#=0 RECORD #1,1 ELSE GOTO weg ENDIF IF a%=1 IF lins#>0 FOR i#=1 TO lins# FOR j#=1 TO 3 lin1$(i#,j#)="" lin2$(i#,j#)="" NEXT j# anm1$(i#)="" anm2$(i#)="" status#(i#)=0 us#(i#)=1 NEXT i# lins#=0 spei#=1 ENDIF ON ERROR GOSUB fehl GET #1,1 IF d1$<>SPACE$(60) fremdspr$=TRIM$(d1$) ELSE fremdspr$="Fremdsprache" ENDIF IF d2$<>SPACE$(60) lek$=SPACE$(72)+TRIM$(d2$)+" " ELSE lek$="" ENDIF z#=0 ELSE ON ERROR GOSUB fehl RECORD #1,2 z#=lins# ENDIF sz#=1 DEFFILL ,2,2 WHILE NOT EOF(#1) z#=z#+1 ON ERROR GOSUB fehl sz#=sz#+1 GET #1,sz# IF d1$<>SPACE$(60) lin1$(z#,1)=TRIM$(d1$) ELSE lin1$(z#,1)="" ENDIF IF d2$<>SPACE$(60) lin1$(z#,2)=TRIM$(d2$) ELSE lin1$(z#,2)="" ENDIF IF d3$<>SPACE$(60) lin1$(z#,3)=TRIM$(d3$) ELSE lin1$(z#,3)="" ENDIF IF a1$<>SPACE$(60) anm1$(z#)=TRIM$(a1$) ELSE anm1$(z#)="" ENDIF IF e1$<>SPACE$(60) lin2$(z#,1)=TRIM$(e1$) ELSE lin2$(z#,i#)="" ENDIF IF e2$<>SPACE$(60) lin2$(z#,2)=TRIM$(e2$) ELSE lin2$(z#,2)="" ENDIF IF e3$<>SPACE$(60) lin2$(z#,3)=TRIM$(e3$) ELSE lin2$(z#,3)="" ENDIF IF a2$<>SPACE$(60) anm2$(z#)=TRIM$(a2$) ELSE anm2$(z#)="" ENDIF us#(z#)=1 IF z#=1000 ALERT 1,"Datei konnte nicht voll-|ständig geladen werden|(1000 Vokabeln Maximum)",1,"Ok",dummy% EXIT IF 1 ENDIF w#=w#+ausw# PBOX 223,200,223+INT(w#),220 WEND CLOSE #1 PUT 215,170,hi$ DEFMOUSE 0 lins#=z# IF lins#=1000 MENU 19,2 ENDIF akt#=lins# clervok showvok(3) MENU 12,3 MENU 13,3 MENU 14,3 MENU 23,3 MENU 24,3 MENU 29,3 MENU 30,3 MENU 34,3 MENU 35,3 MENU 36,3 MENU 37,3 MENU 38,3 MENU 39,3 MENU 43,2 MENU 44,2 MENU 26,3 MENU 27,3 IF LEN(fremdspr$) PRINT AT(6,14);SPC(13) PRINT AT(6,14);fremdspr$;":" ENDIF IF LEN(lek$) PRINT AT(6,24);SPC(70) laufschrift$=lek$ ELSE laufschrift$=SPACE$(72)+"*** VOKUS * Ein Vokabel-Lernprogramm von Thorsten Liese * Geschrieben in GfA-BASIC V3.00 D *" laufschrift$=laufschrift$+" 1990/91 V1.1 * Dieses Programm ist >>PUBLIC DOMAIN<< ! Es darf also beliebig kopiert und weitergegeben werden. * Für nur 10.- DM gibt's die neueste Version von VOKUS ! *** " ENDIF IF lanaus%=2 PRINT AT(6,24);MID$(laufschrift$,73,70) ENDIF PRINT AT(21,21);SPC(4) PRINT AT(67,21);SPC(4) MENU 43,2 gesamtfehl#=0 test$=LEFT$(lad$,LEN(lad$)-5)+CHR$(1+ASC(MID$(lad$,LEN(lad$)-4,1)))+".VOK" IF EXIST(test$) AND lins#<1000 ALERT 2,RIGHT$(test$,LEN(test$)-RINSTR(test$,"\"))+"|nachladen ?",1," JA | NEIN ",n% IF n%=1 lad$=test$ a%=2 GOTO nachlad ENDIF ENDIF ENDIF ' IF MENU(5)=33 IF lins#=0 GOTO weg ENDIF IF LEN(lad$) a$=lad$ ELSE a$="TEST.VOK" ENDIF IF EXIST(a$) ON ERROR GOSUB fehl KILL a$ ENDIF DEFMOUSE 2 GET 215,170,425,230,hi$ DEFFILL ,0,0 PBOX 215,170,425,230 BOX 223,200,417,220 IF a$=lad$ PRINT AT(30,12);RIGHT$(a$,LEN(a$)-RINSTR(a$,"\"))'"SPEICHERN" ELSE PRINT AT(30,12);"'TEST.VOK' SPEICHERN" ENDIF ON ERROR GOSUB fehl OPEN "R",#1,a$,480 FIELD #1,60 AS d1$,60 AS d2$,60 AS d3$,60 AS a1$,60 AS e1$,60 AS e2$,60 AS e3$,60 AS a2$ ausw#=194/lins# w#=0 RECORD #1,1 LSET d1$=fremdspr$ IF lek$<>"" LSET d2$=TRIM$(lek$) ELSE LSET d2$="" ENDIF LSET d3$="" LSET a1$="" LSET e1$="" LSET e3$="" LSET a2$="" ON ERROR GOSUB fehl PUT #1,1 DEFFILL ,2,2 FOR i#=1 TO lins# LSET d1$=lin1$(i#,1) LSET d2$=lin1$(i#,2) LSET d3$=lin1$(i#,3) LSET a1$=anm1$(i#) LSET e1$=lin2$(i#,1) LSET e2$=lin2$(i#,2) LSET e3$=lin2$(i#,3) LSET a2$=anm2$(i#) ON ERROR GOSUB fehl PUT #1,i#+1 w#=w#+ausw# PBOX 223,200,223+INT(w#),220 NEXT i# CLOSE #1 PUT 215,170,hi$ DEFMOUSE 0 spei#=1 ENDIF IF MENU(5)=34 IF lins#=0 GOTO weg ENDIF FILESELECT "\*.VOK","",spei$ IF spei$<>"\" AND spei$<>"" IF EXIST(spei$) ALERT 3,"Datei existiert schon!",1,"Ersetzen|Abbruch",a% IF a%=1 KILL spei$ ELSE GOTO weg ENDIF ENDIF DEFMOUSE 2 GET 215,170,425,230,hi$ DEFFILL ,0,0 PBOX 215,170,425,230 BOX 223,200,417,220 PRINT AT(30,12);"VOKABELN SPEICHERN:" lad$=spei$ ON ERROR GOSUB fehl OPEN "R",#1,spei$,480 FIELD #1,60 AS d1$,60 AS d2$,60 AS d3$,60 AS a1$,60 AS e1$,60 AS e2$,60 AS e3$,60 AS a2$ ausw#=194/lins# w#=0 RECORD #1,1 LSET d1$=fremdspr$ IF lek$<>"" LSET d2$=TRIM$(lek$) ELSE LSET d2$="" ENDIF LSET d3$="" LSET a1$="" LSET e1$="" LSET e3$="" LSET a2$="" ON ERROR GOSUB fehl PUT #1,1 DEFFILL ,2,2 FOR i#=1 TO lins# LSET d1$=lin1$(i#,1) LSET d2$=lin1$(i#,2) LSET d3$=lin1$(i#,3) LSET a1$=anm1$(i#) LSET e1$=lin2$(i#,1) LSET e2$=lin2$(i#,2) LSET e3$=lin2$(i#,3) LSET a2$=anm2$(i#) ON ERROR GOSUB fehl PUT #1,i#+1 w#=w#+ausw# PBOX 223,200,223+INT(w#),220 NEXT i# CLOSE #1 PUT 215,170,hi$ DEFMOUSE 0 spei#=1 ALERT 1,"Ok, kein Fehler!",1,"Gut",dummy% ELSE GOTO weg ENDIF ENDIF IF MENU(5)=37 ALERT 2,"Programm beenden ?",0,"Ja|Nein",a% IF a%=1 IF spei#=0 ALERT 1,"Achtung! Sie haben die|Vokabeln im Speicher|nicht gesichert!",1,"Quit|Abbruch",b% IF b%=2 GOTO weg ENDIF ENDIF FOR i#=0 TO 320 BOX i#,i#,640-i#,400-i# NEXT i# QUIT ENDIF ENDIF IF MENU(5)=35 IF lins#=0 GOTO weg ENDIF ALERT 2,"Wirklich alle Vokabeln|löschen?",2,"Ja|Nein",a% IF a%=1 FOR i#=1 TO lins# FOR j#=1 TO 3 lin1$(i#,j#)="" lin2$(i#,j#)="" NEXT j# status#(i#)=0 anm1$(i#)="" anm2$(i#)="" us#(i#)=1 NEXT i# clervok lins#=0 ablins#=0 gesamtfehl#=0 akt#=0 PRINT AT(21,21);SPC(4) PRINT AT(67,21);SPC(4) MENU 12,2 MENU 13,2 MENU 14,2 MENU 19,3 MENU 23,2 MENU 24,2 MENU 29,2 MENU 30,2 MENU 34,2 MENU 35,2 MENU 36,2 MENU 37,2 MENU 38,2 MENU 39,2 MENU 43,2 MENU 44,2 MENU 26,2 MENU 27,2 laufschrift$=SPACE$(72)+"*** VOKUS * Ein Vokabel-Lernprogramm von Thorsten Liese * Geschrieben in GfA-BASIC V3.00 D *" laufschrift$=laufschrift$+" 1990/91 V1.1 * Dieses Programm ist >>PUBLIC DOMAIN<< ! Es darf also beliebig kopiert und weitergegeben werden. * Für nur 10.- DM gibt's die neueste Version von VOKUS ! *** " IF lanaus%=2 PRINT AT(6,24);SPC(70) PRINT AT(6,24);MID$(laufschrift$,73,70) ENDIF PRINT AT(6,14);SPC(15) PRINT AT(6,14);"Fremdsprache:" fremdspr$="" lek$="" lad$="" ENDIF ENDIF IF MENU(5)=39 IF lins#=1000 ALERT 3,"Es können keine Vokabeln|mehr eingegeben werden!",1,"Abbruch",dummy% GOTO weg ENDIF alt#=lins# DO clervok lins#=lins#+1 akt#=lins# PRINT AT(14,4);akt# PRINT AT(7,9); FORM INPUT 60,lin1$(akt#,1) spacweg(lin1$(akt#,1),back$) lin1$(akt#,1)=back$ IF lin1$(akt#,1)="" lins#=lins#-1 akt#=akt#-1 EXIT IF -1 ENDIF PRINT AT(7,10); FORM INPUT 60,lin1$(akt#,2) spacweg(lin1$(akt#,2),back$) lin1$(akt#,2)=back$ PRINT AT(7,11); FORM INPUT 60,lin1$(akt#,3) spacweg(lin1$(akt#,3),back$) lin1$(akt#,3)=back$ PRINT AT(7,12); FORM INPUT 60,anm1$(akt#) IF anm1$(akt#)<>SPACE$(LEN(anm1$(akt#))) anm1$(akt#)=TRIM$(anm1$(akt#)) ELSE anm1$(akt#)="" ENDIF g5: PRINT AT(7,16); FORM INPUT 60,lin2$(akt#,1) spacweg(lin2$(akt#,1),back$) IF back$="" GOTO g5 ENDIF lin2$(akt#,1)=back$ PRINT AT(7,17); FORM INPUT 60,lin2$(akt#,2) spacweg(lin2$(akt#,2),back$) lin2$(akt#,2)=back$ PRINT AT(7,18); FORM INPUT 60,lin2$(akt#,3) spacweg(lin2$(akt#,3),back$) lin2$(akt#,3)=back$ PRINT AT(7,19); FORM INPUT 60,anm2$(akt#) IF anm2$(akt#)<>SPACE$(LEN(anm2$(akt#))) anm2$(akt#)=TRIM$(anm2$(akt#)) ELSE anm2$(akt#)="" ENDIF IF PEEK(XBIOS(32,L:-1))=96 AND musik#=1 ~XBIOS(32,L:musikadresse%) ENDIF EXIT IF lins#=1000 LOOP IF lins#=0 clervok GOTO weg ENDIF IF alt#=0 MENU 12,3 MENU 13,3 MENU 14,3 MENU 23,3 MENU 24,3 MENU 29,3 MENU 30,3 MENU 34,3 MENU 35,3 MENU 36,3 MENU 37,3 MENU 38,3 MENU 39,3 MENU 26,3 MENU 27,3 ENDIF IF lins#<>alt# spei#=0 MENU 43,2 MENU 44,2 PRINT AT(21,21);SPC(4) gesamtfehl#=0 ENDIF clervok showvok(3) ENDIF IF MENU(5)=42 IF lins#=0 GOTO weg ENDIF PRINT AT(6,24);SPC(70) PRINT AT(6,24);"<Insrt>=nehmen;<Clr>=rausnehmen;Cursortasten=vor,zurück;+<Cntrl>=alles" IF us#(akt#)=1 DEFTEXT 1,0,0,6 TEXT 533,55,"Vokabel" TEXT 533,65," wird" TEXT 523,75,"abgefragt" ENDIF REPEAT a$=INKEY$ skey%=BIOS(11,-1) IF LEN(a$)=1 IF UPPER$(a$)="S" MENU 43,2 ALERT 1,"Es werden alle Vokabeln ge-|wählt,die mindestens x mal|falsch gemacht worden sind !",1,"Aha",dummy% diain("Wert für X :",2,eing$) spacweg(eing$,back$) eing$=back$ IF eing$<>"" FOR i#=1 TO lins# IF status#(i#)>=VAL(eing$) us#(i#)=1 ELSE us#(i#)=0 ENDIF NEXT i# IF us#(akt#)=1 DEFTEXT 1,0,0,6 TEXT 533,55,"Vokabel" TEXT 533,65," wird" TEXT 523,75,"abgefragt" ELSE DEFFILL ,0,0 PBOX 519,29,601,111 ENDIF ENDIF ENDIF ENDIF IF LEN(a$)=2 IF ASC(RIGHT$(a$))=82 MENU 43,2 IF skey% AND 4 FOR i#=1 TO lins# us#(i#)=1 NEXT i# ELSE us#(akt#)=1 ENDIF DEFTEXT 1,0,0,6 TEXT 533,55,"Vokabel" TEXT 533,65," wird" TEXT 523,75,"abgefragt" ENDIF IF ASC(RIGHT$(a$))=71 MENU 43,2 us#(akt#)=0 DEFFILL ,0,0 PBOX 519,29,601,111 ENDIF IF ASC(RIGHT$(a$))=119 MENU 43,2 FOR i#=1 TO lins# us#(i#)=0 NEXT i# DEFFILL ,0,0 PBOX 519,29,601,111 ENDIF IF ASC(RIGHT$(a$))=77 MENU 43,2 akt#=akt#+1 IF akt#>lins# akt#=lins# ENDIF clervok showvok(3) IF us#(akt#)=1 DEFTEXT 1,0,0,6 TEXT 533,55,"Vokabel" TEXT 533,65," wird" TEXT 523,75,"abgefragt" ELSE DEFFILL ,0,0 PBOX 519,29,601,111 ENDIF ENDIF IF ASC(RIGHT$(a$))=116 MENU 43,2 akt#=akt#+20 IF akt#>lins# akt#=lins# ENDIF clervok showvok(3) IF us#(akt#)=1 DEFTEXT 1,0,0,6 TEXT 533,55,"Vokabel" TEXT 533,65," wird" TEXT 523,75,"abgefragt" ELSE DEFFILL ,0,0 PBOX 519,29,601,111 ENDIF ENDIF IF ASC(RIGHT$(a$))=75 MENU 43,2 akt#=akt#-1 IF akt#<1 akt#=1 ENDIF clervok showvok(3) IF us#(akt#)=1 DEFTEXT 1,0,0,6 TEXT 533,55,"Vokabel" TEXT 533,65," wird" TEXT 523,75,"abgefragt" ELSE DEFFILL ,0,0 PBOX 519,29,601,111 ENDIF ENDIF IF ASC(RIGHT$(a$))=115 MENU 43,2 akt#=akt#-20 IF akt#<1 akt#=1 ENDIF clervok showvok(3) IF us#(akt#)=1 DEFTEXT 1,0,0,6 TEXT 533,55,"Vokabel" TEXT 533,65," wird" TEXT 523,75,"abgefragt" ELSE DEFFILL ,0,0 PBOX 519,29,601,111 ENDIF ENDIF IF ASC(RIGHT$(a$))=72 MENU 43,2 akt#=lins# clervok showvok(3) IF us#(akt#)=1 DEFTEXT 1,0,0,6 TEXT 533,55,"Vokabel" TEXT 533,65," wird" TEXT 523,75,"abgefragt" ELSE DEFFILL ,0,0 PBOX 519,29,601,111 ENDIF ENDIF IF ASC(RIGHT$(a$))=80 MENU 43,2 akt#=1 clervok showvok(3) IF us#(akt#)=1 DEFTEXT 1,0,0,6 TEXT 533,55,"Vokabel" TEXT 533,65," wird" TEXT 523,75,"abgefragt" ELSE DEFFILL ,0,0 PBOX 519,29,601,111 ENDIF ENDIF ENDIF IF PEEK(XBIOS(32,L:-1))=96 AND musik#=1 ~XBIOS(32,L:musikadresse%) ENDIF UNTIL MOUSEK=2 DEFFILL ,0,0 PBOX 519,29,601,111 PRINT AT(6,24);SPC(70) IF lanaus%=2 PRINT AT(6,24);MID$(laufschrift$,73,70) ENDIF v#=0 FOR i#=1 TO lins# IF us#(i#)=0 v#=v#+1 ENDIF NEXT i# IF v#=lins# FOR i#=1 TO lins# us#(i#)=1 NEXT i# ENDIF ENDIF ' IF MENU(5)=43 IF lins#=0 GOTO weg ENDIF MENU KILL SGET hi$ CLS PRINT AT((79-LEN(MID$(lek$,73)))/2,1);lek$ PRINT FOR i#=1 TO lins# IF us#(i#)=1 PRINT i#; deu$=lin1$(i#,1) IF LEN(lin1$(i#,2)) deu$=deu$+" / "+lin1$(i#,2) ENDIF IF LEN(lin1$(i#,3)) deu$=deu$+" / "+lin1$(i#,3) ENDIF IF LEN(anm1$(i#)) deu$=deu$+" ("+anm1$(i#)+")" ENDIF engl$=lin2$(i#,1) IF LEN(lin2$(i#,2)) engl$=engl$+" / "+lin2$(i#,2) ENDIF IF LEN(lin2$(i#,3)) engl$=engl$+" / "+lin2$(i#,3) ENDIF IF LEN(anm2$(i#)) engl$=engl$+" ("+anm2$(i#)+")" ENDIF deuz#=1 englz#=1 REPEAT IF deuz#<=LEN(deu$) IF LEN(MID$(deu$,deuz#))>30 w#=MAX(RINSTR(MID$(deu$,deuz#,30)," "),RINSTR(MID$(deu$,deuz#,30),",")) IF w#=0 w#=30 deuz#=deuz#+30 ELSE deuz#=deuz#+w# ENDIF PRINT TAB(6);MID$(deu$,deuz#-w#,w#); ELSE PRINT TAB(6);MID$(deu$,deuz#); deuz#=LEN(deu$)+1 ENDIF ENDIF IF englz#<=LEN(engl$) IF LEN(MID$(engl$,englz#))>30 w#=MAX(RINSTR(MID$(engl$,englz#,30)," "),RINSTR(MID$(engl$,englz#,30),",")) IF w#=0 w#=30 englz#=englz#+30 ELSE englz#=englz#+w# ENDIF PRINT TAB(41);MID$(engl$,englz#-w#,w#) ELSE PRINT TAB(41);MID$(engl$,englz#) englz#=LEN(engl$)+1 ENDIF ELSE PRINT ENDIF UNTIL deuz#>LEN(deu$) AND englz#>LEN(engl$) IF i#>14 AND MOD(i#,15)=0 REPEAT a$=INKEY$ UNTIL LEN(a$) EXIT IF UPPER$(a$)="Q" ENDIF ENDIF NEXT i# IF UPPER$(a$)<>"Q" REPEAT UNTIL LEN(INKEY$) ENDIF SPUT hi$ MENU menu$() IF gesamtfehl#=0 MENU 43,2 ENDIF MENU 44,2 IF lanaus%=1 MENU 56,1 ENDIF IF grber%=1 MENU 45,1 ENDIF ENDIF ' IF MENU(5)=45 FOR i#=1 TO lins# akt#=i# IF us#(i#)=1 PRINT AT(6,24);SPC(70) PRINT AT(6,24);" Bitte eine Taste drücken, um die Lösung zu zeigen." clervok showvok(1) REPEAT UNTIL INKEY$="" REPEAT UNTIL INKEY$<>"" showvok(2) PRINT AT(6,24);SPC(70) PRINT AT(6,24);" Taste drücken ; [ESC] = Abbruch" REPEAT a$=INKEY$ UNTIL a$<>"" EXIT IF a$=CHR$(27) ENDIF IF PEEK(XBIOS(32,L:-1))=96 AND musik#=1 ~XBIOS(32,L:musikadresse%) ENDIF NEXT i# PRINT AT(6,24);SPC(70) IF lanaus%=2 PRINT AT(6,24);MID$(laufschrift$,73,70) ENDIF ENDIF ' IF MENU(5)=46 FOR i#=1 TO lins# akt#=i# IF us#(i#)=1 PRINT AT(6,24);SPC(70) PRINT AT(6,24);" Bitte eine Taste drücken, um die Lösung zu zeigen." clervok showvok(2) REPEAT UNTIL INKEY$="" REPEAT UNTIL INKEY$<>"" showvok(1) PRINT AT(6,24);SPC(70) PRINT AT(6,24);" Taste drücken ; [ESC] = Abbruch" REPEAT a$=INKEY$ UNTIL a$<>"" EXIT IF a$=CHR$(27) ENDIF IF PEEK(XBIOS(32,L:-1))=96 AND musik#=1 ~XBIOS(32,L:musikadresse%) ENDIF NEXT i# PRINT AT(6,24);SPC(70) IF lanaus%=2 PRINT AT(6,24);MID$(laufschrift$,73,70) ENDIF ENDIF ' IF MENU(5)=48 beivf#=0 gesamtfehl#=0 PRINT AT(21,21);SPC(4) eing1$="@" eing2$="@" eing3$="@" topf#=0 FOR n#=1 TO lins# IF us#(n#)=1 drin#(n#)=1 topf#=topf#+1 ELSE drin#(n#)=0 ENDIF NEXT n# FOR n#=1 TO lins# IF drin#(n#)=1 status#(n#)=0 ENDIF NEXT n# ablins#=0 REPEAT REPEAT akt#=1+RANDOM(lins#) UNTIL drin#(akt#)=1 ablins#=ablins#+1 clervok showvok(1) PRINT AT(6,24);SPC(70) IF topf#=1 PRINT AT(6,24);"Dies ist die letzte Vokabel!" ELSE PRINT AT(6,24);" Es werden noch ";topf#;" Vokabeln abgefragt." ENDIF PRINT AT(7,16); FORM INPUT 60,eing1$ spacweg(eing1$,back$) eing1$=back$ IF allerichtig%=2 bedeutung1#=0 bedeutung2#=0 bedeutung3#=0 IF lin2$(akt#,2)<>"" PRINT AT(7,17); FORM INPUT 60,eing2$ spacweg(eing2$,back$) eing2$=back$ ELSE eing2$="@" bedeutung2#=1 ENDIF IF lin2$(akt#,3)<>"" PRINT AT(7,18); FORM INPUT 60,eing3$ spacweg(eing3$,back$) eing3$=back$ ELSE eing3$="@" bedeutung3#=1 ENDIF PRINT AT(6,24);SPC(70) IF eing1$="" OR eing2$="" OR eing3$="" eing1$="@" eing2$="@" eing3$="@" GOTO g3 ENDIF IF grber%=1 IF eing1$=lin2$(akt#,1) bedeutung1#=1 ENDIF IF eing1$=lin2$(akt#,2) bedeutung1#=2 ENDIF IF eing1$=lin2$(akt#,3) bedeutung1#=3 ENDIF IF eing2$=lin2$(akt#,1) AND bedeutung1#<>1 bedeutung2#=1 ENDIF IF eing2$=lin2$(akt#,2) AND bedeutung1#<>2 bedeutung2#=2 ENDIF IF eing2$=lin2$(akt#,3) AND bedeutung1#<>3 bedeutung2#=3 ENDIF IF eing3$=lin2$(akt#,1) AND bedeutung1#<>1 AND bedeutung2#<>1 bedeutung3#=1 ENDIF IF eing3$=lin2$(akt#,2) AND bedeutung1#<>2 AND bedeutung2#<>2 bedeutung3#=2 ENDIF IF eing3$=lin2$(akt#,3) AND bedeutung1#<>3 AND bedeutung2#<>3 bedeutung3#=3 ENDIF ELSE IF UPPER$(eing1$)=UPPER$(lin2$(akt#,1)) bedeutung1#=1 ENDIF IF UPPER$(eing1$)=UPPER$(lin2$(akt#,2)) bedeutung1#=2 ENDIF IF UPPER$(eing1$)=UPPER$(lin2$(akt#,3)) bedeutung1#=3 ENDIF IF UPPER$(eing2$)=UPPER$(lin2$(akt#,1)) AND bedeutung1#<>1 bedeutung2#=1 ENDIF IF UPPER$(eing2$)=UPPER$(lin2$(akt#,2)) AND bedeutung1#<>2 bedeutung2#=2 ENDIF IF UPPER$(eing2$)=UPPER$(lin2$(akt#,3)) AND bedeutung1#<>3 bedeutung2#=3 ENDIF IF UPPER$(eing3$)=UPPER$(lin2$(akt#,1)) AND bedeutung1#<>1 AND bedeutung2#<>1 bedeutung3#=1 ENDIF IF UPPER$(eing3$)=UPPER$(lin2$(akt#,2)) AND bedeutung1#<>2 AND bedeutung2#<>2 bedeutung3#=2 ENDIF IF UPPER$(eing3$)=UPPER$(lin2$(akt#,3)) AND bedeutung1#<>3 AND bedeutung2#<>3 bedeutung3#=3 ENDIF ENDIF IF bedeutung1#>0 AND bedeutung2#>0 AND bedeutung3#>0 IF nachfrag#=1 FOR i#=1 TO 160 IF INSTR(eing1$,MID$(unregel$(i#,1),4)) OR INSTR(eing2$,MID$(unregel$(i#,1),4)) OR INSTR(eing3$,MID$(unregel$(i#,1),4)) IF i#=3 OR i#=9 OR i#=10 OR i#=25 OR i#=35 OR i#=36 OR i#=37 OR i#=43 OR i#=57 OR i#=59 OR i#=93 OR i#=97 OR i#=104 IF INSTR(eing1$,unregel$(i#,1))=0 GOTO weg1 ENDIF ENDIF clervok PRINT AT(14,4);akt# PRINT AT(7,9);"Simple Past von '";unregel$(i#,1);"' !" vw1: PRINT AT(7,16); FORM INPUT 60,v1$ spacweg(v1$,back$) IF back$="" GOTO vw1 ENDIF v1$=back$ IF UPPER$(v1$)<>UPPER$(unregel$(i#,2)) beivf#=1 EXIT IF 1 ENDIF clervok PRINT AT(14,4);akt# PRINT AT(7,9);"Past Participle von '";unregel$(i#,1);"' !" vw2: PRINT AT(7,16); FORM INPUT 60,v2$ spacweg(v2$,back$) IF back$="" GOTO vw2 ENDIF v2$=back$ IF UPPER$(v2$)<>UPPER$(unregel$(i#,3)) beivf#=2 EXIT IF 1 ENDIF ENDIF weg1: NEXT i# IF beivf#>0 GOTO g3 ENDIF ENDIF PUT 520,30,sym2$ topf#=topf#-1 PRINT AT(7,19);SPC(60) PRINT AT(7,19);anm2$(akt#) PRINT AT(6,24);SPC(70) PRINT AT(6,24);" BRAVO ! Alles richtig !! (Taste drücken, ESC für Abbruch)" drin#(akt#)=0 REPEAT a$=INKEY$ UNTIL LEN(a$) IF a$=CHR$(27) EXIT IF 1 ENDIF PRINT AT(6,24);SPC(70) ELSE g3: PUT 520,30,sym1$ PRINT AT(6,24);SPC(70) PRINT AT(6,24);" Das ist leider nicht ganz richtig. (Taste drücken)" REPEAT UNTIL LEN(INKEY$) IF beivf#=1 PRINT AT(7,16);SPC(60) PRINT AT(7,16);unregel$(i#,2) ENDIF IF beivf#=2 PRINT AT(7,16);SPC(60) PRINT AT(7,16);unregel$(i#,3) ENDIF IF beivf#=0 clervok showvok(3) ENDIF beivf#=0 PRINT AT(6,24);SPC(70) PRINT AT(6,24);"Das ist die richtige Lösung ! [Taste drücken]" REPEAT UNTIL LEN(INKEY$) ALERT 1,"Die Antwort war falsch!|Trotzdem als richtig werten?",1,"Falsch|Richtig|Abbruch",b% IF b%=3 ALERT 3,"Die letzte Vokabel als|richtig werten ?",1,"Nein|Ja",c% IF c%=1 gesamtfehl#=gesamtfehl#+1 status#(akt#)=status#(akt#)+1 EXIT IF 1 ELSE topf#=topf#-1 EXIT IF 1 ENDIF ENDIF IF b%=1 gesamtfehl#=gesamtfehl#+1 status#(akt#)=status#(akt#)+1 ENDIF IF b%=2 drin#(akt#)=0 topf#=topf#-1 ENDIF PRINT AT(6,24);SPC(70) ENDIF ELSE PRINT AT(6,24);SPC(70) IF eing1$="" eing1$="@" GOTO g4 ENDIF bedeutung1#=0 IF grber%=1 IF eing1$=lin2$(akt#,1) OR eing1$=lin2$(akt#,2) OR eing1$=lin2$(akt#,3) bedeutung1#=1 ENDIF ELSE IF UPPER$(eing1$)=UPPER$(lin2$(akt#,1)) OR UPPER$(eing1$)=UPPER$(lin2$(akt#,2)) OR UPPER$(eing1$)=UPPER$(lin2$(akt#,3)) bedeutung1#=1 ENDIF ENDIF IF bedeutung1#=1 IF nachfrag#=1 FOR i#=1 TO 160 IF INSTR(eing1$,MID$(unregel$(i#,1),4)) IF i#=3 OR i#=9 OR i#=10 OR i#=25 OR i#=35 OR i#=36 OR i#=37 OR i#=43 OR i#=57 OR i#=59 OR i#=93 OR i#=97 OR i#=104 IF INSTR(eing1$,unregel$(i#,1))=0 GOTO weg2 ENDIF ENDIF clervok PRINT AT(14,4);akt# PRINT AT(7,9);"Simple Past von '";unregel$(i#,1);"' !" vw3: PRINT AT(7,16); FORM INPUT 60,v1$ spacweg(v1$,back$) IF back$="" GOTO vw3 ENDIF v1$=back$ IF UPPER$(v1$)<>UPPER$(unregel$(i#,2)) beivf#=1 EXIT IF 1 ENDIF clervok PRINT AT(14,4);akt# PRINT AT(7,9);"Past Participle von '";unregel$(i#,1);"' !" vw4: PRINT AT(7,16); FORM INPUT 60,v2$ spacweg(v2$,back$) IF back$="" GOTO vw4 ENDIF v2$=back$ IF UPPER$(v2$)<>UPPER$(unregel$(i#,3)) beivf#=2 EXIT IF 1 ENDIF ENDIF weg2: NEXT i# IF beivf#>0 GOTO g4 ENDIF ENDIF PUT 520,30,sym3$ topf#=topf#-1 PRINT AT(6,24);SPC(70) PRINT AT(6,24);" Richtig ! (Taste drücken; ESC für Abbruch)" drin#(akt#)=0 clervok showvok(3) REPEAT a$=INKEY$ UNTIL LEN(a$) IF a$=CHR$(27) EXIT IF 1 ENDIF PRINT AT(6,24);SPC(70) ELSE g4: PUT 520,30,sym1$ PRINT AT(6,24);SPC(70) PRINT AT(6,24);" Das ist leider falsch ! (Taste drücken)" REPEAT UNTIL LEN(INKEY$) IF beivf#=1 PRINT AT(7,16);SPC(60) PRINT AT(7,16);unregel$(i#,2) ENDIF IF beivf#=2 PRINT AT(7,16);SPC(60) PRINT AT(7,16);unregel$(i#,3) ENDIF IF beivf#=0 clervok showvok(3) ENDIF beivf#=0 PRINT AT(6,24);SPC(70) PRINT AT(6,24);"Das ist die richtige Lösung ! [Taste drücken]" REPEAT UNTIL LEN(INKEY$) ALERT 1,"Die Antwort war falsch!|Trotzdem als richtig werten?",1,"Falsch|Richtig|Abbruch",b% IF b%=3 ALERT 3,"Die letzte Vokabel als|richtig werten ?",1,"Nein|Ja",c% IF c%=1 gesamtfehl#=gesamtfehl#+1 status#(akt#)=status#(akt#)+1 EXIT IF 1 ELSE topf#=topf#-1 EXIT IF 1 ENDIF ENDIF IF b%=1 gesamtfehl#=gesamtfehl#+1 status#(akt#)=status#(akt#)+1 ENDIF IF b%=2 drin#(akt#)=0 topf#=topf#-1 ENDIF PRINT AT(6,24);SPC(70) ENDIF ENDIF PRINT AT(21,21);SPC(4) PRINT AT(21,21);gesamtfehl# IF PEEK(XBIOS(32,L:-1))=96 AND musik#=1 ~XBIOS(32,L:musikadresse%) ENDIF UNTIL topf#=0 PRINT AT(6,24);SPC(70) IF lanaus%=2 PRINT AT(6,24);MID$(laufschrift$,73,70) ENDIF clervok showvok(3) MENU 43,3 PRINT AT(21,21);SPC(4) PRINT AT(21,21);gesamtfehl# DEFFILL ,0,0 PBOX 519,29,601,111 ENDIF ' IF MENU(5)=49 gesamtfehl#=0 PRINT AT(21,21);SPC(4) eing1$="@" eing2$="@" eing3$="@" topf#=0 FOR n#=1 TO lins# IF us#(n#)=1 drin#(n#)=1 topf#=topf#+1 ELSE drin#(n#)=0 ENDIF NEXT n# FOR n#=1 TO lins# IF drin#(n#)=1 status#(n#)=0 ENDIF NEXT n# ablins#=0 REPEAT REPEAT akt#=1+RANDOM(lins#) UNTIL drin#(akt#)=1 ablins#=ablins#+1 clervok showvok(2) PRINT AT(6,24);SPC(70) IF topf#=1 PRINT AT(6,24);"Dies ist die letzte Vokabel!" ELSE PRINT AT(6,24);" Es werden noch ";topf#;" Vokabeln abgefragt." ENDIF PRINT AT(7,9); FORM INPUT 60,eing1$ spacweg(eing1$,back$) eing1$=back$ IF allerichtig%=2 bedeutung1#=0 bedeutung2#=0 bedeutung3#=0 IF lin1$(akt#,2)<>"" PRINT AT(7,10); FORM INPUT 60,eing2$ spacweg(eing2$,back$) eing2$=back$ ELSE bedeutung2#=1 ENDIF IF lin1$(akt#,3)<>"" PRINT AT(7,11); FORM INPUT 60,eing3$ spacweg(eing3$,back$) eing3$=back$ ELSE bedeutung3#=1 ENDIF PRINT AT(6,24);SPC(70) IF eing1$="" OR eing2$="" OR eing3$="" eing1$="@" eing2$="@" eing3$="@" GOTO g1 ENDIF IF grber%=1 IF eing1$=lin1$(akt#,1) bedeutung1#=1 ENDIF IF eing1$=lin1$(akt#,2) bedeutung1#=2 ENDIF IF eing1$=lin1$(akt#,3) bedeutung1#=3 ENDIF IF eing2$=lin1$(akt#,1) AND bedeutung1#<>1 bedeutung2#=1 ENDIF IF eing2$=lin1$(akt#,2) AND bedeutung1#<>2 bedeutung2#=2 ENDIF IF eing2$=lin1$(akt#,3) AND bedeutung1#<>3 bedeutung2#=3 ENDIF IF eing3$=lin1$(akt#,1) AND bedeutung1#<>1 AND bedeutung2#<>1 bedeutung3#=1 ENDIF IF eing3$=lin1$(akt#,2) AND bedeutung1#<>2 AND bedeutung2#<>2 bedeutung3#=2 ENDIF IF eing3$=lin1$(akt#,3) AND bedeutung1#<>3 AND bedeutung2#<>3 bedeutung3#=3 ENDIF ELSE IF UPPER$(eing1$)=UPPER$(lin1$(akt#,1)) bedeutung1#=1 ENDIF IF UPPER$(eing1$)=UPPER$(lin1$(akt#,2)) bedeutung1#=2 ENDIF IF UPPER$(eing1$)=UPPER$(lin1$(akt#,3)) bedeutung1#=3 ENDIF IF UPPER$(eing2$)=UPPER$(lin1$(akt#,1)) AND bedeutung1#<>1 bedeutung2#=1 ENDIF IF UPPER$(eing2$)=UPPER$(lin1$(akt#,2)) AND bedeutung1#<>2 bedeutung2#=2 ENDIF IF UPPER$(eing2$)=UPPER$(lin1$(akt#,3)) AND bedeutung1#<>3 bedeutung2#=3 ENDIF IF UPPER$(eing3$)=UPPER$(lin1$(akt#,1)) AND bedeutung1#<>1 AND bedeutung2#<>1 bedeutung3#=1 ENDIF IF UPPER$(eing3$)=UPPER$(lin1$(akt#,2)) AND bedeutung1#<>2 AND bedeutung2#<>2 bedeutung3#=2 ENDIF IF UPPER$(eing3$)=UPPER$(lin1$(akt#,3)) AND bedeutung1#<>3 AND bedeutung2#<>3 bedeutung3#=3 ENDIF ENDIF IF bedeutung1#>0 AND bedeutung2#>0 AND bedeutung3#>0 PUT 520,30,sym2$ topf#=topf#-1 PRINT AT(7,12);SPC(60) PRINT AT(7,12);anm1$(akt#) PRINT AT(6,24);SPC(70) PRINT AT(6,24);" BRAVO ! Alles richtig !! (Taste drücken; ESC für Abbruch)" drin#(akt#)=0 REPEAT a$=INKEY$ UNTIL LEN(a$) IF a$=CHR$(27) EXIT IF 1 ENDIF PRINT AT(6,24);SPC(70) ELSE g1: PUT 520,30,sym1$ PRINT AT(6,24);SPC(70) PRINT AT(6,24);" Das ist leider nicht ganz richtig. (Taste drücken)" REPEAT UNTIL LEN(INKEY$) clervok showvok(3) PRINT AT(6,24);SPC(70) PRINT AT(6,24);"Das ist die richtige Lösung ! [Taste drücken]" REPEAT UNTIL LEN(INKEY$) ALERT 1,"Die Antwort war falsch!|Trotzdem als richtig werten?",1,"Falsch|Richtig|Abbruch",b% IF b%=3 ALERT 3,"Die letzte Vokabel als|richtig werten ?",1,"Nein|Ja",c% IF c%=1 gesamtfehl#=gesamtfehl#+1 status#(akt#)=status#(akt#)+1 EXIT IF 1 ELSE topf#=topf#-1 EXIT IF 1 ENDIF ENDIF IF b%=1 gesamtfehl#=gesamtfehl#+1 status#(akt#)=status#(akt#)+1 ENDIF IF b%=2 drin#(akt#)=0 topf#=topf#-1 ENDIF PRINT AT(6,24);SPC(70) ENDIF ELSE PRINT AT(6,24);SPC(70) IF eing1$="" eing1$="@" GOTO g2 ENDIF bedeutung1#=0 IF grber%=1 IF eing1$=lin1$(akt#,1) OR eing1$=lin1$(akt#,2) OR eing1$=lin1$(akt#,3) bedeutung1#=1 ENDIF ELSE IF UPPER$(eing1$)=UPPER$(lin1$(akt#,1)) OR UPPER$(eing1$)=UPPER$(lin1$(akt#,2)) OR UPPER$(eing1$)=UPPER$(lin1$(akt#,3)) bedeutung1#=1 ENDIF ENDIF IF bedeutung1#=1 PUT 520,30,sym3$ topf#=topf#-1 PRINT AT(6,24);SPC(70) PRINT AT(6,24);" Richtig ! (Taste drücken; ESC für Abbruch)" drin#(akt#)=0 clervok showvok(3) REPEAT a$=INKEY$ UNTIL LEN(a$) IF a$=CHR$(27) EXIT IF 1 ENDIF PRINT AT(6,24);SPC(70) ELSE g2: PUT 520,30,sym1$ PRINT AT(6,24);SPC(70) PRINT AT(6,24);" Das ist leider falsch ! (Taste drücken)" REPEAT UNTIL LEN(INKEY$) clervok showvok(3) PRINT AT(6,24);SPC(70) PRINT AT(6,24);"Das ist die richtige Lösung ! [Taste drücken]" REPEAT UNTIL LEN(INKEY$) ALERT 1,"Die Antwort war falsch!|Trotzdem als richtig werten?",1,"Falsch|Richtig|Abbruch",b% IF b%=3 ALERT 3,"Die letzte Vokabel als|richtig werten ?",1,"Nein|Ja",c% IF c%=1 gesamtfehl#=gesamtfehl#+1 status#(akt#)=status#(akt#)+1 EXIT IF 1 ELSE topf#=topf#-1 EXIT IF 1 ENDIF ENDIF IF b%=1 gesamtfehl#=gesamtfehl#+1 status#(akt#)=status#(akt#)+1 ENDIF IF b%=2 drin#(akt#)=0 topf#=topf#-1 ENDIF PRINT AT(6,24);SPC(70) ENDIF ENDIF PRINT AT(21,21);SPC(4) PRINT AT(21,21);gesamtfehl# IF PEEK(XBIOS(32,L:-1))=96 AND musik#=1 ~XBIOS(32,L:musikadresse%) ENDIF UNTIL topf#=0 PRINT AT(6,24);SPC(70) IF lanaus%=2 PRINT AT(6,24);MID$(laufschrift$,73,70) ENDIF clervok showvok(3) MENU 43,3 PRINT AT(21,21);SPC(4) PRINT AT(21,21);gesamtfehl# DEFFILL ,0,0 PBOX 519,29,601,111 ENDIF ' IF MENU(5)=50 IF hilfe#=0 ALERT 1," | | |Die Hilfest. ist jetzt an.",1,"Ok",dummy# hilfe#=1 MENU 31,1 ELSE ALERT 1,"Die Hilfestellung ist jetzt|ausgeschaltet .",1,"Ok",dummy# hilfe#=0 MENU 31,0 ENDIF ENDIF ' IF MENU(5)=52 diain("Goto Vokabel Nr.:",4,back$) IF VAL(back$)>0 AND VAL(back$)<lins#+1 akt#=VAL(back$) clervok showvok(3) ENDIF ENDIF ' IF MENU(5)=53 ALERT 2,"Die Vokabel wirklich löschen ?",0,"Ja|Nein",a% IF a%=2 GOTO weg ENDIF IF akt#=lins# lin1$(akt#,1)="" lin1$(akt#,2)="" lin1$(akt#,3)="" anm1$(akt#)="" lin2$(akt#,1)="" lin2$(akt#,2)="" lin2$(akt#,3)="" anm2$(akt#)="" status#(akt#)=0 us#(akt#)=1 akt#=akt#-1 lins#=lins#-1 ELSE FOR i#=akt# TO lins#-1 lin1$(i#,1)=lin1$(i#+1,1) lin1$(i#,2)=lin1$(i#+1,2) lin1$(i#,3)=lin1$(i#+1,3) anm1$(i#)=anm1$(i#+1) lin2$(i#,1)=lin2$(i#+1,1) lin2$(i#,2)=lin2$(i#+1,2) lin2$(i#,3)=lin2$(i#+1,3) anm2$(i#)=anm2$(i#+1) status#(i#)=status#(i#+1) us#(i#)=us#(i#+1) NEXT i# lin1$(lins#,1)="" lin1$(lins#,2)="" lin1$(lins#,3)="" anm1$(lins#)="" lin2$(lins#,1)="" lin2$(lins#,2)="" lin2$(lins#,3)="" anm2$(lins#)="" lins#=lins#-1 status#(lins#)=0 us#(lins#)=1 ENDIF MENU 19,3 clervok showvok(3) ENDIF ' IF MENU(5)=54 ALERT 2,"Die aktuelle Vokabel ersetzen?",2,"Ja|Nein",a% IF a%=2 GOTO weg ENDIF clervok PRINT AT(14,4);akt# PRINT AT(7,9); FORM INPUT 60,a$ spacweg(a$,back$) IF back$="" showvok(3) GOTO weg ENDIF lin1$(akt#,1)=back$ PRINT AT(7,10); FORM INPUT 60,lin1$(akt#,2) spacweg(lin1$(akt#,2),back$) lin1$(akt#,2)=back$ PRINT AT(7,11); FORM INPUT 60,lin1$(akt#,3) spacweg(lin1$(akt#,3),back$) lin1$(akt#,3)=back$ PRINT AT(7,12); FORM INPUT 60,anm1$(akt#) IF anm1$(akt#)<>SPACE$(LEN(anm1$(akt#))) anm1$(akt#)=TRIM$(anm1$(akt#)) ELSE anm1$(akt#)="" ENDIF g6: PRINT AT(7,16); FORM INPUT 60,lin2$(akt#,1) spacweg(lin2$(akt#,1),back$) IF back$="" GOTO g6 ENDIF lin2$(akt#,1)=back$ PRINT AT(7,17); FORM INPUT 60,lin2$(akt#,2) spacweg(lin2$(akt#,2),back$) lin2$(akt#,2)=back$ PRINT AT(7,18); FORM INPUT 60,lin2$(akt#,3) spacweg(lin2$(akt#,3),back$) lin2$(akt#,3)=back$ PRINT AT(7,19); FORM INPUT 60,anm2$(akt#) IF anm2$(akt#)<>SPACE$(LEN(anm2$(akt#))) anm2$(akt#)=TRIM$(anm2$(akt#)) ELSE anm2$(akt#)="" ENDIF status#(akt#)=0 us#(akt#)=1 ENDIF ' IF MENU(5)=55 ALERT 2,"Die aktuelle Vokabel editieren?",1,"Ja|Nein",a% IF a%=2 GOTO weg ENDIF PRINT AT(14,4);akt# PRINT AT(7,9); a$=lin1$(akt#,1) FORM INPUT 60 AS a$ spacweg(a$,back$) IF back$="" showvok(3) GOTO weg ENDIF lin1$(akt#,1)=back$ PRINT AT(7,10); FORM INPUT 60 AS lin1$(akt#,2) spacweg(lin1$(akt#,2),back$) lin1$(akt#,2)=back$ PRINT AT(7,11); FORM INPUT 60 AS lin1$(akt#,3) spacweg(lin1$(akt#,3),back$) lin1$(akt#,3)=back$ PRINT AT(7,12); FORM INPUT 60 AS anm1$(akt#) IF anm1$(akt#)<>SPACE$(LEN(anm1$(akt#))) anm1$(akt#)=TRIM$(anm1$(akt#)) ELSE anm1$(akt#)="" ENDIF g7: PRINT AT(7,16); FORM INPUT 60 AS lin2$(akt#,1) spacweg(lin2$(akt#,1),back$) IF back$="" GOTO g7 ENDIF lin2$(akt#,1)=back$ PRINT AT(7,17); FORM INPUT 60 AS lin2$(akt#,2) spacweg(lin2$(akt#,2),back$) lin2$(akt#,2)=back$ PRINT AT(7,18); FORM INPUT 60 AS lin2$(akt#,3) spacweg(lin2$(akt#,3),back$) lin2$(akt#,3)=back$ PRINT AT(7,19); FORM INPUT 60 AS anm2$(akt#) IF anm2$(akt#)<>SPACE$(LEN(anm2$(akt#))) anm2$(akt#)=TRIM$(anm2$(akt#)) ELSE anm2$(akt#)="" ENDIF ENDIF ' IF MENU(5)=57 IF lins#=0 GOTO weg ENDIF IF NOT OUT?(0) ALERT 3,"Drucker nicht ansprechbar!",1,"Abbruch",dummy% GOTO weg ENDIF ALERT 2,"Ausdruck von Vokabeln:",1,"Alle|gewählte",pr% ALERT 3,"Druckerpapier: ",1,"Endlos|Einzel|Abbruch",papierart# IF papierart#=3 GOTO weg ENDIF MENU KILL SGET hi$ DEFFILL ,0,0 PBOX 150,125,450,275 BOX 152,127,448,273 IF LEN(lad$) PRINT AT(23,10);"Ausdruck von ";RIGHT$(lad$,LEN(lad$)-RINSTR(lad$,"\")) ELSE PRINT AT(23,10);"Ausdruck von Vokabeln" ENDIF PRINT AT(27,12);"Drucke Vokabel : " PRINT AT(27,14);"Drucke Seite : 1" PRINT AT(23,16);" Abbruch mit der Taste <S>" LPRINT TAB((79-LEN(MID$(lek$,73)))/2);lek$ LPRINT PAUSE 100 seite#=1 LPRINT "Nr.:";TAB(6);"Deutsch:";TAB(41);fremdspr$;":";TAB(70);"Seite ";seite# LPRINT PAUSE 100 FOR i#=1 TO lins# IF pr%=2 AND us#(i#)=0 GOTO weiter ENDIF PRINT AT(44,12);i# LPRINT i#; deu$=lin1$(i#,1) IF LEN(lin1$(i#,2)) deu$=deu$+" / "+lin1$(i#,2) ENDIF IF LEN(lin1$(i#,3)) deu$=deu$+" / "+lin1$(i#,3) ENDIF IF LEN(anm1$(i#)) deu$=deu$+" ("+anm1$(i#)+")" ENDIF engl$=lin2$(i#,1) IF LEN(lin2$(i#,2)) engl$=engl$+" / "+lin2$(i#,2) ENDIF IF LEN(lin2$(i#,3)) engl$=engl$+" / "+lin2$(i#,3) ENDIF IF LEN(anm2$(i#)) engl$=engl$+" ("+anm2$(i#)+")" ENDIF deuz#=1 englz#=1 REPEAT IF deuz#<=LEN(deu$) IF LEN(MID$(deu$,deuz#))>30 w#=MAX(RINSTR(MID$(deu$,deuz#,30)," "),RINSTR(MID$(deu$,deuz#,30),",")) IF w#=0 w#=30 deuz#=deuz#+30 ELSE deuz#=deuz#+w# ENDIF LPRINT TAB(6);MID$(deu$,deuz#-w#,w#); ELSE LPRINT TAB(6);MID$(deu$,deuz#); deuz#=LEN(deu$)+1 ENDIF ENDIF IF englz#<=LEN(engl$) IF LEN(MID$(engl$,englz#))>30 w#=MAX(RINSTR(MID$(engl$,englz#,30)," "),RINSTR(MID$(engl$,englz#,30),",")) IF w#=0 w#=30 englz#=englz#+30 ELSE englz#=englz#+w# ENDIF LPRINT TAB(41);MID$(engl$,englz#-w#,w#) PAUSE 70 ELSE LPRINT TAB(41);MID$(engl$,englz#) PAUSE 70 englz#=LEN(engl$)+1 ENDIF ELSE LPRINT PAUSE 70 ENDIF UNTIL deuz#>LEN(deu$) AND englz#>LEN(engl$) IF abort#=1 abort#=0 EXIT IF 1 ENDIF IF i#>49 AND MOD(i#,50)=0 IF papierart#=1 IF OUT?(0)=FALSE ALERT 3,"Drucker meldet sich nicht!",1,"Weiter|Abbruch",a% IF a%=2 EXIT IF 1 ENDIF ENDIF FOR n#=1 TO 15 LPRINT NEXT n# PAUSE 200 ELSE ALERT 3,"Bitte neues Blatt Papier|einspannen !",1,"Weiter",dummy% ENDIF LET seite#=seite#+1 PRINT AT(42,14);seite# IF OUT?(0)=FALSE ALERT 3,"Drucker meldet sich nicht!",1,"Weiter|Abbruch",a% IF a%=2 EXIT IF 1 ENDIF ENDIF LPRINT "Nr.:";TAB(6);"Deutsch:";TAB(41);fremdspr$;":";TAB(70);"Seite ";seite# LPRINT PAUSE 100 ENDIF a$=INKEY$ IF UPPER$(a$)="S" ALERT 3,"Ausdruck angehalten!",1,"Weiter|Abbruch",a% IF a%=2 EXIT IF 1 ENDIF REPEAT UNTIL INKEY$="" ENDIF weiter: NEXT i# SPUT hi$ MENU menu$() IF gesamtfehl#=0 MENU 43,2 ENDIF MENU 44,2 IF lanaus%=1 MENU 56,1 ENDIF IF grber%=1 MENU 45,1 ENDIF ENDIF ' IF MENU(5)=56 IF lins#=0 GOTO weg ENDIF MENU KILL SGET hi$ CLS PRINT AT((79-LEN(MID$(lek$,73)))/2,1);lek$ PRINT FOR i#=1 TO lins# PRINT i#; deu$=lin1$(i#,1) IF LEN(lin1$(i#,2)) deu$=deu$+" / "+lin1$(i#,2) ENDIF IF LEN(lin1$(i#,3)) deu$=deu$+" / "+lin1$(i#,3) ENDIF IF LEN(anm1$(i#)) deu$=deu$+" ("+anm1$(i#)+")" ENDIF engl$=lin2$(i#,1) IF LEN(lin2$(i#,2)) engl$=engl$+" / "+lin2$(i#,2) ENDIF IF LEN(lin2$(i#,3)) engl$=engl$+" / "+lin2$(i#,3) ENDIF IF LEN(anm2$(i#)) engl$=engl$+" ("+anm2$(i#)+")" ENDIF deuz#=1 englz#=1 REPEAT IF deuz#<=LEN(deu$) IF LEN(MID$(deu$,deuz#))>30 w#=MAX(RINSTR(MID$(deu$,deuz#,30)," "),RINSTR(MID$(deu$,deuz#,30),",")) IF w#=0 w#=30 deuz#=deuz#+30 ELSE deuz#=deuz#+w# ENDIF PRINT TAB(6);MID$(deu$,deuz#-w#,w#); ELSE PRINT TAB(6);MID$(deu$,deuz#); deuz#=LEN(deu$)+1 ENDIF ENDIF IF englz#<=LEN(engl$) IF LEN(MID$(engl$,englz#))>30 w#=MAX(RINSTR(MID$(engl$,englz#,30)," "),RINSTR(MID$(engl$,englz#,30),",")) IF w#=0 w#=30 englz#=englz#+30 ELSE englz#=englz#+w# ENDIF PRINT TAB(41);MID$(engl$,englz#-w#,w#) ELSE PRINT TAB(41);MID$(engl$,englz#) englz#=LEN(engl$)+1 ENDIF ELSE PRINT ENDIF UNTIL deuz#>LEN(deu$) AND englz#>LEN(engl$) IF i#>14 AND MOD(i#,15)=0 REPEAT a$=INKEY$ UNTIL LEN(a$) EXIT IF UPPER$(a$)="Q" ENDIF NEXT i# IF UPPER$(a$)<>"Q" REPEAT UNTIL LEN(INKEY$) ENDIF SPUT hi$ MENU menu$() IF gesamtfehl#=0 MENU 43,2 ENDIF MENU 44,2 IF lanaus%=1 MENU 56,1 ENDIF IF grber%=1 MENU 45,1 ENDIF ENDIF ' IF MENU(5)=58 gef#=0 ALERT 3,"Suchfunktion ! |Was soll durchsucht werden?",1,"Speicher|File|Disk",a% IF a%>1 ALERT 1,"Leider in dieser Version|noch nicht möglich.",1,"Abbruch",dummy% GOTO weg ENDIF IF lins#=0 ALERT 3,"Es befinden sich keine|Vokabeln im Speicher!",1,"Abbruch",dummy% GOTO weg ENDIF ALERT 2,"Nach was wird gesucht?",0,"Fremdsp.|Deutsch",b% IF b%=1 x#=9 ELSE x#=16 ENDIF clervok g8: PRINT AT(7,x#); FORM INPUT 60,such$ spacweg(such$,back$) IF back$="" ALERT 2,"HÄ?! ",1,"OH|Weg hier",c% IF c%=2 showvok(3) GOTO weg ENDIF GOTO g8 ENDIF such$=back$ FOR i#=1 TO lins# IF x#=9 IF INSTR(UPPER$(lin1$(i#,1)),UPPER$(such$)) OR INSTR(UPPER$(lin1$(i#,2)),UPPER$(such$)) OR INSTR(UPPER$(lin1$(i#,3)),UPPER$(such$)) gef#=1 akt#=i# clervok showvok(3) REPEAT UNTIL LEN(INKEY$) ALERT 3,"Weitersuchen ?",1,"Ja,bitte| Nö ",d% IF d%=2 EXIT IF 1 ENDIF gef#=0 ENDIF ELSE IF INSTR(UPPER$(lin2$(i#,1)),UPPER$(such$)) OR INSTR(UPPER$(lin2$(i#,2)),UPPER$(such$)) OR INSTR(UPPER$(lin2$(i#,3)),UPPER$(such$)) gef#=1 akt#=i# clervok showvok(3) REPEAT UNTIL LEN(INKEY$) ALERT 3,"Weitersuchen ?",1,"Ja,bitte| Nö ",d% IF d%=2 EXIT IF 1 ENDIF gef#=0 ENDIF ENDIF NEXT i# IF gef#=0 ALERT 1,"Keine Übersetzung gefunden.",1,"Schade",dummy% ENDIF clervok showvok(3) ENDIF ' IF MENU(5)=60 IF ablins#=0 ALERT 3,"Keine Auswertung möglich",1,"Abbruch",dummy% MENU MENU(0),2 GOTO weg ENDIF SGET hi$ DEFFILL 1,1,1 PBOX 55,55,595,355 DEFFILL 1,2,3 PBOX 50,50,590,350 DEFFILL ,0,0 PBOX 65,65,575,90 DEFTEXT 1,1,0,15 TEXT 70,83,500,"Es wurden "+STR$(ablins#)+" Vokabeln abgefragt" fehler#=gesamtfehl# IF fehler#>ablins# fehler#=ablins# ENDIF PBOX 65,105,350,290 DEFFILL 1,2,2 r%=(3600/ablins#)*(ablins#-fehler#) IF r%=0 r%=1 ENDIF PCIRCLE 208,198,80,900,900+r% DEFFILL 1,2,4 PCIRCLE 208,198,80,900+r%,900 TEXT 80,130,"Richtig" TEXT 90,150,STR$(ablins#-fehler#) TEXT 290,130,"Falsch" TEXT 305,150,STR$(fehler#) DEFFILL ,0,0 PBOX 370,105,575,290 DEFTEXT 1,1,0,15 TEXT 385,130,175,"Sie haben also" DEFTEXT 1,3,0,26 apr#=ROUND(((ablins#-fehler#)/ablins#)*100) TEXT 385,200,175," "+STR$(apr#)+"% " DEFTEXT 1,1,0,15 TEXT 385,270,175,"richtig beantwortet" PBOX 65,305,575,330 DEFTEXT 1,0,0,13 note$="" x#=0 vorhera#=-1 REPEAT RESTORE notedatas x#=x#+1 FOR i#=1 TO x# READ a% NEXT i# IF apr#>vorhera# AND apr#<=a% RESTORE notdollar FOR i#=1 TO x# READ note$ NEXT i# ENDIF vorhera#=a% UNTIL LEN(note$) notedatas: DATA 6,12,18,25,31,37,43,50,56,62,68,75,81,87,93,101 notdollar: DATA "6","6+","5-","5","5+","4-","4","4+","3-","3","3+","2-","2","2+","1-","1" TEXT 70,323,500," Bewertung nach dem deutschen Notensystem : "+note$+" " REPEAT UNTIL LEN(INKEY$) SPUT hi$ ENDIF ' IF MENU(5)=62 ALERT 3,"Soll die Großschreibung|berücksichtigt werden?",1,"Ja|Nein",g% IF g%=1 grber%=1 MENU MENU(0),1 ELSE grber%=0 MENU MENU(0),0 ENDIF ENDIF ' IF MENU(5)=63 diain("Fremdsprache :",12,back$) IF back$=SPACE$(LEN(back$)) back$="" ENDIF IF LEN(back$) fremdspr$=back$ PRINT AT(6,14);SPC(13) PRINT AT(6,14);fremdspr$;":" ENDIF ENDIF ' IF MENU(5)=64 diain("Lektionsname :",60,back$) IF back$=SPACE$(LEN(back$)) back$="" ENDIF IF LEN(back$) PRINT AT(6,24);SPC(70) lek$=SPACE$(72)+back$+" " laufschrift$=lek$ IF lanaus%=2 PRINT AT(6,24);" ";MID$(laufschrift$,73) ENDIF ENDIF ENDIF ' IF MENU(5)=65 DEFTEXT 1,0,0,13 SGET hi$ TITLEW #1,"Funktionstastenbelegung" OPENW #1,120,30,350,360,9 CLS keylist REPEAT MOUSE x#,y#,k# IF x#>0 AND x#<350 AND y#>0 AND y#<320 AND k#=1 ft%=y#/16+1 defkey$=CHAR{BASEPAGE+ftastenspeicher%+(ft%-1)*32} PRINT AT(10,ft%);SPC(33) PRINT AT(10,ft%); FORM INPUT 31 AS defkey$ IF defkey$<>SPACE$(LEN(defkey$)) KEYDEF ft%,defkey$ ENDIF defkey$=CHAR{BASEPAGE+ftastenspeicher%+(ft%-1)*32} PRINT AT(10,ft%);SPC(33) PRINT AT(10,ft%);CHR$(34);defkey$;CHR$(34) ENDIF UNTIL LEN(INKEY$) CLOSEW 1 CLOSEW 0 SPUT hi$ ENDIF ' IF MENU(5)=66 FILESELECT "\*.FTA","SETUP.FTA",backvar$ IF backvar$="" OR backvar$="\" GOTO weg ENDIF ON ERROR GOSUB fehl OPEN "U",#1,backvar$ FOR i#=1 TO 20 ON ERROR GOSUB fehl INPUT #1,a$ KEYDEF i#,a$ NEXT i# CLOSE ENDIF ' IF MENU(5)=67 FILESELECT "\*.FTA","",speichervar$ IF speichervar$="" OR speichervar$="\" GOTO weg ENDIF IF EXIST(speichervar$) ALERT 3,"Datei existiert schon!",1,"Ersetzen|Abbruch",a% IF a%=2 GOTO weg ENDIF KILL speichervar$ ENDIF OPEN "O",#1,speichervar$ FOR i#=1 TO 20 defkey$=CHAR{BASEPAGE+ftastenspeicher%+(i#-1)*32} ON ERROR GOSUB fehl PRINT #1,defkey$ NEXT i# CLOSE ENDIF ' IF MENU(5)=68 SGET hi$ ~GRAF_GROWBOX(320,200,0,0,120,50,400,300) DEFFILL 1,1,1 PBOX 125,55,525,355 DEFFILL ,0,0 PBOX 120,50,520,350 PRINT AT(18,5);" Einstellungen" PRINT AT(18,6);" -------------" PRINT AT(18,8);" Bei der Abfrage..." PRINT AT(18,10);" ...braucht nur eine Bedeutung ge-" PRINT AT(18,11);" wußt zu werden." PRINT AT(18,12);" ...müssen alle Bedeutungen gewußt" PRINT AT(18,13);" werden." PRINT AT(18,15);" Sollen bei Vorkommen von unregelmaßigen eng-" PRINT AT(18,16);" lischen Verben die anderen zwei Formen nach-" PRINT AT(18,17);" gefragt werden ?" PRINT AT(18,19);" Ja Nein" PRINT AT(18,21);" Ok" BOX 170,146,183,159 BOX 170,174,183,187 BOX 190,288,203,301 BOX 330,288,343,301 BOX 272,317,352,337 DEFFILL 1,2,4 IF allerichtig%=1 PBOX 170,146,183,159 ENDIF IF allerichtig%=2 PBOX 170,174,183,187 ENDIF IF nachfrag#=0 PBOX 330,288,343,301 ENDIF IF nachfrag#=1 PBOX 190,288,203,301 ENDIF REPEAT IF MOUSEX>170 AND MOUSEX<183 AND MOUSEY>146 AND MOUSEY<159 AND MOUSEK=1 allerichtig%=1 DEFFILL 1,2,4 PBOX 170,146,183,159 DEFFILL ,0,0 PBOX 170,174,183,187 ENDIF IF MOUSEX>170 AND MOUSEX<183 AND MOUSEY>174 AND MOUSEY<187 AND MOUSEK=1 allerichtig%=2 DEFFILL 1,2,4 PBOX 170,174,183,187 DEFFILL ,0,0 PBOX 170,146,183,159 ENDIF IF MOUSEX>190 AND MOUSEX<203 AND MOUSEY>288 AND MOUSEY<301 AND MOUSEK=1 nachfrag#=1 DEFFILL 1,2,4 PBOX 190,288,203,301 DEFFILL ,0,0 PBOX 330,288,343,301 ENDIF IF MOUSEX>330 AND MOUSEX<343 AND MOUSEY>288 AND MOUSEY<301 AND MOUSEK=1 nachfrag#=0 DEFFILL 1,2,4 PBOX 330,288,343,301 DEFFILL ,0,0 PBOX 190,288,203,301 ENDIF UNTIL MOUSEX>272 AND MOUSEX<352 AND MOUSEY>317 AND MOUSEY<337 AND MOUSEK=1 GRAPHMODE 3 DEFFILL 1,1,1 PBOX 272,317,352,337 PAUSE 10 GRAPHMODE 1 ~GRAF_SHRINKBOX(320,200,0,0,120,50,400,300) SPUT hi$ ENDIF ' IF MENU(5)=70 ALERT 1,"Abbruch mit ESC",1,"Ok",dummy% musik#=1 SPOKE &H484,PEEK(&H484) AND NOT 1 ~XBIOS(32,L:musikadresse%) ENDIF ' IF MENU(5)=71 SGET hi$ TITLEW #1,"Unregelmäßige englische Verben" OPENW #1,30,44,580,308,9 CLS DEFTEXT 1,0,0,6 FOR i#=1 TO 159 STEP 2 IF i#=67 OR i#=135 REPEAT UNTIL INKEY$="" REPEAT UNTIL LEN(INKEY$) ENDIF PRINT " ";unregel$(i#,1);TAB(14);unregel$(i#,2);TAB(24);unregel$(i#,3);TAB(36);"*";TAB(39);unregel$(i#+1,1);TAB(51);unregel$(i#+1,2);TAB(61);unregel$(i#+1,3) NEXT i# REPEAT UNTIL LEN(INKEY$) CLOSEW 1 CLOSEW 0 SPUT hi$ ENDIF ' IF MENU(5)=72 ALERT 0," ",0," AN | AUS ",lanaus% IF lanaus%=2 PRINT AT(6,24);SPC(70) PRINT AT(6,24);MID$(laufschrift$,73,70) MENU MENU(0),0 ELSE PRINT AT(6,24);SPC(70) MENU MENU(0),1 ENDIF ENDIF ' IF MENU(5)=73 IF lins#>1 ALERT 1,"Sortieren ! ",1,"alphbet.|Fehl.Anz",a% IF a%=1 ALERT 2,"Welche Bedeutung soll|alphabetisch sortiert|werden ",1,"deutsche|fremdspr",b% DEFMOUSE 2 GET 215,170,425,230,hi$ DEFFILL ,0,0 PBOX 215,170,425,230 BOX 223,200,417,220 PRINT AT(30,12);"VOKABELN SORTIEREN:" ausw#=194/lins# w#=0 DEFFILL ,2,2 IF b%=1 FOR i%=1 TO lins# FOR n%=i%+1 TO lins# IF UPPER$(lin1$(i%,1))>UPPER$(lin1$(n%,1)) SWAP lin1$(i%,1),lin1$(n%,1) SWAP lin1$(i%,2),lin1$(n%,2) SWAP lin1$(i%,3),lin1$(n%,3) SWAP anm1$(i%),anm1$(n%) SWAP lin2$(i%,1),lin2$(n%,1) SWAP lin2$(i%,2),lin2$(n%,2) SWAP lin2$(i%,3),lin2$(n%,3) SWAP anm2$(i%),anm2$(n%) SWAP status#(i%),status#(n%) SWAP us#(i%),us#(n%) ENDIF NEXT n% w#=w#+ausw# PBOX 223,200,223+INT(w#),220 NEXT i% ENDIF IF b%=2 FOR i%=1 TO lins# FOR n%=i%+1 TO lins# IF UPPER$(lin2$(i%,1))>UPPER$(lin2$(n%,1)) SWAP lin1$(i%,1),lin1$(n%,1) SWAP lin1$(i%,2),lin1$(n%,2) SWAP lin1$(i%,3),lin1$(n%,3) SWAP anm1$(i%),anm1$(n%) SWAP lin2$(i%,1),lin2$(n%,1) SWAP lin2$(i%,2),lin2$(n%,2) SWAP lin2$(i%,3),lin2$(n%,3) SWAP anm2$(i%),anm2$(n%) SWAP status#(i%),status#(n%) SWAP us#(i%),us#(n%) ENDIF NEXT n% w#=w#+ausw# PBOX 223,200,223+INT(w#),220 NEXT i% ENDIF PUT 215,170,hi$ DEFMOUSE 0 clervok showvok(3) ENDIF IF a%=2 DEFMOUSE 2 GET 215,170,425,230,hi$ DEFFILL ,0,0 PBOX 215,170,425,230 BOX 223,200,417,220 PRINT AT(30,12);"VOKABELN SORTIEREN:" ausw#=194/lins# w#=0 DEFFILL ,2,2 FOR i%=1 TO lins# FOR n%=i%+1 TO lins# IF status#(i%)<status#(n%) SWAP lin1$(i%,1),lin1$(n%,1) SWAP lin1$(i%,2),lin1$(n%,2) SWAP lin1$(i%,3),lin1$(n%,3) SWAP anm1$(i%),anm1$(n%) SWAP lin2$(i%,1),lin2$(n%,1) SWAP lin2$(i%,2),lin2$(n%,2) SWAP lin2$(i%,3),lin2$(n%,3) SWAP anm2$(i%),anm2$(n%) SWAP status#(i%),status#(n%) SWAP us#(i%),us#(n%) ENDIF NEXT n% w#=w#+ausw# PBOX 223,200,223+INT(w#),220 NEXT i% PUT 215,170,hi$ DEFMOUSE 0 clervok showvok(3) ENDIF ENDIF ENDIF ' weg: MENU OFF RETURN ' PROCEDURE degload(p.nm$,p.ad%,c.ad%,p.rs%) LOCAL buff$,b.adr% buff$=SPACE$(32034) b.adr%=VARPTR(buff$) BLOAD p.nm$,b.adr% *p.ad%=RIGHT$(buff$,32000) *c.ad%=MID$(buff$,3,32) *p.rs%=DPEEK(VARPTR(buff$)) RETURN ' PROCEDURE clervok PRINT AT(14,4);SPC(4) PRINT AT(7,9);SPC(60) PRINT AT(7,10);SPC(60) PRINT AT(7,11);SPC(60) PRINT AT(7,12);SPC(60) PRINT AT(7,16);SPC(60) PRINT AT(7,17);SPC(60) PRINT AT(7,18);SPC(60) PRINT AT(7,19);SPC(60) RETURN PROCEDURE showvok(w%) PRINT AT(14,4);akt# IF w%=1 OR w%=3 PRINT AT(7,9);lin1$(akt#,1) PRINT AT(7,10);lin1$(akt#,2) PRINT AT(7,11);lin1$(akt#,3) PRINT AT(7,12);anm1$(akt#) ENDIF IF w%=2 OR w%=3 PRINT AT(7,16);lin2$(akt#,1) PRINT AT(7,17);lin2$(akt#,2) PRINT AT(7,18);lin2$(akt#,3) PRINT AT(7,19);anm2$(akt#) ENDIF PRINT AT(67,21);SPC(4) PRINT AT(67,21);status#(akt#) RETURN ' PROCEDURE spacweg(e.s$,VAR f.e$) LOCAL z% IF e.s$<>SPACE$(LEN(e.s$)) e.s$=TRIM$(e.s$) ELSE e.s$="" ENDIF FOR z%=1 TO LEN(e.s$) nochma: IF MID$(e.s$,z%,1)=" " AND MID$(e.s$,z%+1,1)=" " e.s$=LEFT$(e.s$,z%-1)+MID$(e.s$,z%+1) GOTO nochma ENDIF IF MID$(e.s$,z%,1)="," AND MID$(e.s$,z%+1,1)=" " e.s$=LEFT$(e.s$,z%)+MID$(e.s$,z%+2) GOTO nochma ENDIF IF MID$(e.s$,z%,1)=" " AND MID$(e.s$,z%+1,1)="," e.s$=LEFT$(e.s$,z%-1)+MID$(e.s$,z%+1) GOTO nochma ENDIF IF MID$(e.s$,z%,1)="!" AND MID$(e.s$,z%+1,1)=" " e.s$=LEFT$(e.s$,z%)+MID$(e.s$,z%+2) GOTO nochma ENDIF IF MID$(e.s$,z%,1)=" " AND MID$(e.s$,z%+1,1)="!" e.s$=LEFT$(e.s$,z%-1)+MID$(e.s$,z%+1) GOTO nochma ENDIF IF MID$(e.s$,z%,1)="?" AND MID$(e.s$,z%+1,1)=" " e.s$=LEFT$(e.s$,z%)+MID$(e.s$,z%+2) GOTO nochma ENDIF IF MID$(e.s$,z%,1)=" " AND MID$(e.s$,z%+1,1)="?" e.s$=LEFT$(e.s$,z%-1)+MID$(e.s$,z%+1) GOTO nochma ENDIF IF MID$(e.s$,z%,1)=":" AND MID$(e.s$,z%+1,1)=" " e.s$=LEFT$(e.s$,z%)+MID$(e.s$,z%+2) GOTO nochma ENDIF IF MID$(e.s$,z%,1)=" " AND MID$(e.s$,z%+1,1)=":" e.s$=LEFT$(e.s$,z%-1)+MID$(e.s$,z%+1) GOTO nochma ENDIF IF MID$(e.s$,z%,1)="." AND MID$(e.s$,z%+1,1)=" " e.s$=LEFT$(e.s$,z%)+MID$(e.s$,z%+2) GOTO nochma ENDIF IF MID$(e.s$,z%,1)=" " AND MID$(e.s$,z%+1,1)="." e.s$=LEFT$(e.s$,z%-1)+MID$(e.s$,z%+1) GOTO nochma ENDIF NEXT z% f.e$=e.s$ RETURN ' PROCEDURE fehl var#=FORM_ALERT(1,ERR$(ERR)) CLOSE RESUME weg RETURN ' PROCEDURE diain(t.ext$,in.w%,VAR in.g$) LOCAL w.eite%,e.i$ w.eite%=MAX(LEN(t.ext$),in.w%)*8+50 GET (640-w.eite%)/2,170,(640-w.eite%)/2+w.eite%,220,hi$ DEFFILL ,0,0 PBOX (640-w.eite%)/2,170,(640-w.eite%)/2+w.eite%,220 PRINT AT((79-LEN(t.ext$))/2,12);t.ext$ PRINT AT((79-in.w%)/2,13); FORM INPUT in.w%,e.i$ PUT (640-w.eite%)/2,170,hi$ in.g$=e.i$ RETURN ' PROCEDURE keylist LOCAL i%,back% OPEN "",#99,"CON:" FOR i%=0 TO 19 defkey$=CHR$(34)+CHAR{BASEPAGE+ftastenspeicher%+i%*32}+CHR$(34) IF i%<10 PRINT #99;" F ";SPC(2-LEN(STR$(i%+1))); PRINT #99;i%+1;" : ";defkey$ ELSE PRINT #99;" sF ";SPC(2-LEN(STR$(i%-9))); PRINT #99;i%-9;" : ";defkey$ ENDIF NEXT i% CLOSE #99 RETURN ' PROCEDURE find(f.flg%,str1$,str2$,st%,en%,f.adr_%) LOCAL f.b$,f.i%,f.of%,f.step%,f.spc%,f.sta%,f.buf$ st%=MAX(2048,INT(st%/2)*2) en%=MAX(st%,INT(en%/2)*2) f.step%=MIN(en%-st%,4000) f.rst%=(en%-st%) MOD f.step% f.b$=SPACE$(f.step%) f.spc%=f.step% FOR f.i%=st% TO en% STEP f.step% IF (f.i%+f.step%)>en% f.spc%=f.rst% ENDIF BMOVE f.i%,VARPTR(f.b$),MAX(f.spc%,1) CLR f.sta% REPEAT f.of%=INSTR(LEFT$(f.b$,f.spc%),str1$+str2$,f.sta%) IF f.of% f.sta%=f.of%+LEN(str1$+str2$) f.buf$=f.buf$+MKL$(f.i%+f.of%-1) ENDIF UNTIL f.of%=0 OR (f.flg%<>0 AND f.of%>0) EXIT IF f.flg% AND f.of%>0 NEXT f.i% *f.adr_%=f.buf$ RETURN